package com.cw.jeeyt.service.intf.system;

import com.cw.jeeyt.service.bo.system.SystemTemplateInfoBo;
import com.cw.lang.mybatis.dto.PageInfo;

/**
 * 生成代码模板信息业务接口
  * @author chenw
 * @version 1.0.0
 */
public interface SystemTemplateInfoService {

    /**
     * 删除生成代码模板信息
     *
     * @param systemTemplateInfoBo
     */
    void delete(SystemTemplateInfoBo systemTemplateInfoBo) throws Exception;

    /**
     * 更新生成代码模板信息
     *
     * @param systemTemplateInfoBo
     */
    void update(SystemTemplateInfoBo systemTemplateInfoBo) throws Exception;

    /**
     * 根据主键查询生成代码模板信息
     *
     * @param id
     * @return
     */
    SystemTemplateInfoBo getSystemTemplateInfoById(String id) throws Exception;

    /**
     * 新增生成代码模板信息
     *
     * @param systemTemplateInfoBo
     * @return
     */
    String insert(SystemTemplateInfoBo systemTemplateInfoBo) throws Exception;

    /**
     * 分页查询生成代码模板信息
     *
     * @param systemTemplateInfoBo
     * @param startNum
     * @param pageSize
     * @return
     * @throws Exception
     */
    PageInfo<SystemTemplateInfoBo> queryByPage(SystemTemplateInfoBo systemTemplateInfoBo, Integer startNum,
        Integer pageSize) throws Exception;

    /**
     * 克隆模板信息
     *
     * @param systemTemplateInfoBo
     * @param templateId
     *
     */
    void cloneTemplate(SystemTemplateInfoBo systemTemplateInfoBo,String templateId);
    /**
     * 初始化模板
     * 第一种，每次都从配置读取覆盖
     * 第二种，如果模板文件已存在，则不更新覆盖，这种情况不灵活，每次都需要到服务器修改配置文件
     * 因此采用第一种
     *
     * @param systemTemplateInfo
     * @throws Exception
     */
    void initTemplateFile(SystemTemplateInfoBo systemTemplateInfo);
}
